home *** CD-ROM | disk | FTP | other *** search
/ Aminet 22 / Aminet 22 (1997)(GTI - Schatztruhe)[!][Dec 1997].iso / Aminet / util / cli / FlushTimer.lha / FlushTimer.doc < prev   
Text File  |  1980-01-05  |  3KB  |  134 lines

  1. ****************************************************************************
  2.  
  3. FlushTimer V1.0 Olly Koenders 31-07-97
  4.  
  5.  
  6. This little (!) util is CLI only and will call "C:Avail FLUSH" before
  7. entering a delay loop that will call it recursively using timed intervals.
  8.  
  9. ----------------------------------------------------------------------------
  10.  
  11. Template:
  12.  
  13. FlushTimer [x]
  14.  
  15. Where x is: 0 -> 15 minute intervals
  16.           : 1 to 9 -> 1 to 9 hour intervals.
  17.  
  18. "FlushTimer 5" will set the timed intervals to 5 hours between flushes.
  19.  
  20. ----------------------------------------------------------------------------
  21.  
  22. FlushTimer will begin a background process when called so won't require to
  23. be called with "Run <>NIL: FlushTimer".
  24.  
  25. Please note that Kickstart 1.3 and below flushes its libraries and
  26. deallocates their used memory automatically when a task closes them, and the
  27. 1.3 "Avail" command doesn't have the "FLUSH" option, therefore this proggy
  28. is 2.04+ only really..:)
  29.  
  30. The assembler source follows and requires no "includes" or "x-refs" and
  31. should assemble straight up without modification.  Original assembly was
  32. with Maxon 4.5/5.0.  This is a 10 minute hack and works without fault on
  33. any processor and KS 2.04+.
  34.  
  35. You are free to change the code and reassemble as you see fit, just don't
  36. fuck it up and pass it on as a bug of mine!
  37.  
  38. Any changes to the code should be added to the line below and then some
  39. explanatory text about the changes before reassembling and distributing.
  40.  
  41. ----------------------------------------------------------------------------
  42.  
  43. V1.0 31-07-97 Original assembly by Olly koenders - Australia.
  44. No bugs.  Executable size: 328 bytes.
  45.  
  46. ****************************************************************************
  47.     section detach,code,public
  48.  
  49. execbase=4
  50. openlib=-408
  51. findtask=-294
  52. createproc=-138
  53. mode_new=1006
  54. open=-30
  55. execute=-222
  56. delay=-198
  57.  
  58.  
  59. code:
  60.     move.l execbase,a6
  61.     move.b (a0),number+3
  62.     lea dosname,a1
  63.     jsr openlib(a6)        ;open dos.lib
  64.     move.l d0,dosbase
  65.     move.l d0,a6
  66.     lea code(pc),a0
  67.     move.l -4(a0),d3
  68.     clr.l -4(a0)        ;change starting address
  69.     move.l #name,d1
  70.     moveq #0,d2
  71.     move.l #4096,d4
  72.     jsr createproc(a6)    ;start process from "task"
  73.     moveq #0,d0
  74.     rts
  75.  
  76.     section task,code,public    ;<-- DO NOT REMOVE!  Necessary!
  77.  
  78. task:
  79.     move.l dosbase,a6
  80.     move.l #outhandle,d1
  81.     move.l #mode_new,d2
  82.     jsr open(a6)        ;open NIL: output
  83.     move.l d0,d5
  84.     lea table(pc),a0
  85.     move.l number(pc),d0
  86.     sub.b #$30,d0
  87.     add.b d0,d0
  88.     add.b d0,d0
  89.     move.l (a0,d0.w),d6    ;get delay from table and store
  90.  
  91. loopit:
  92.     move.l #proggy,d1    ;string to call
  93.     move.l d5,d2        ;<NIL:
  94.     move.l d5,d3        ;>NIL:
  95.     jsr execute(a6)        ;run it
  96.     move.l d6,d1        ;the delay value
  97.     jsr delay(a6)        ;and wait - no processor time wasted
  98.     bra.b loopit        ;do it endlessly
  99.  
  100. dosname:
  101.     dc.b "dos.library",0
  102.     even
  103.  
  104. outhandle:
  105.     dc.b "NIL:",0
  106.     even
  107.  
  108. dosbase:
  109.     dc.l 0
  110.  
  111. number:
  112.     dc.l 0
  113.  
  114. table:
  115.     dc.l 45000    ;15 min
  116.     dc.l 180000    ;1 hour
  117.     dc.l 360000    ;2 hours
  118.     dc.l 540000    ;3
  119.     dc.l 720000    ;4
  120.     dc.l 900000    ;5
  121.     dc.l 1080000    ;6
  122.     dc.l 1260000    ;7
  123.     dc.l 1440000    ;8
  124.     dc.l 1620000    ;9
  125.  
  126. name:
  127.     dc.b "FlushTimer",0
  128.     even
  129.  
  130. proggy:
  131.     dc.b "C:Avail FLUSH",0
  132.     end
  133.  
  134.